package cn.hxsteel.core.base;

import cn.hxsteel.jpart.pager.AjaxPager;
import cn.hxsteel.jpart.pager.PagerVO;
import cn.hxsteel.model.vo.PageVO;

/**
 * 基础的服务类
 */
public class BaseService
{
    private AjaxPager ajaxPager;
    private int       showNo          = 5;
    private boolean   isSavePagerData = false;
    
    /**
     * 存储分页数据
     * 
     * @param pageVO 分页数据
     */
    protected void savePagerData( PageVO< ? > pageVO )
    {
	savePagerData( pageVO, showNo );
    }
    
    /**
     * 存储分页数据
     * 
     * @param pageVO 分页数据
     * @param showNo 要显示在分页组件上的数字个数，只可以是奇数
     */
    protected void savePagerData( PageVO< ? > pageVO, int showNo )
    {
	isSavePagerData = true;
	this.showNo = showNo;
	ajaxPager = new AjaxPager( pageVO.getPageNo(), pageVO.getPageSize(), pageVO.getPageRecord() );
    }
    
    /**
     * 返回分页对象
     * 
     * @param url 当前页码路径
     */
    public PagerVO createPagerData()
    {
	if ( !isSavePagerData ) { throw new Error( "调用 createPagerData( String url ) 方法前请先在service中调用 savePagerData( PageVO< ? > pageVO ) 方法！" ); }
	isSavePagerData = false;
	return ajaxPager.create( showNo );
    }
}